package cn.lg.soar.mvc.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author luguoxiang
 * @date 2021/9/28
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Log {

    /**
     * 操作（做什么）
     * @return
     */
    String value();

    /**
     * 操作数据，支持el表达式，el结果是字符串则保存字符串，是object的保存json数据
     * @return
     */
    String data() default "";

    /**
     * 数据id，支持el表达式
     * @return
     */
    String dataId() default "";

    /**
     * 数据id，支持el表达式
     * @return
     */
    String dataType() default "";

    /**
     * 是否同步保存
     * @return
     */
    boolean sync() default false;

    /**
     * 日志类型
     * @return
     */
    Type type() default Type.AUTO;

    enum Type {
        /**
         * 自动
         */
        AUTO,
        /**
         * 数据日志
         */
        DATA,
        /**
         * 文本日志
         */
        TEXT
    }

}
